#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
#include <sys/time.h>

void timer_handler(int sig) {
    printf("Timer fired every 1 second!\n");
}

void testAlarm01() {
    struct itimerval timer;
    timer.it_value.tv_sec = 1;     // 首次触发延迟（1秒）
    timer.it_value.tv_usec = 0;
    timer.it_interval.tv_sec = 1;  // 后续周期（1秒）
    timer.it_interval.tv_usec = 0;
    
    signal(SIGALRM, timer_handler);
    setitimer(ITIMER_REAL, &timer, NULL);
    
    while (1);  // 保持进程运行
}

///////////////////////////////////////////////////

void alarm_handler(int sig) {
    printf("Alarm triggered!\n");
}

void testAlarm02() {
    signal(SIGALRM, alarm_handler);  // 注册信号处理函数
    alarm(3);  // 3秒后触发SIGALRM
    
    printf("Waiting for alarm...\n");
    pause();  // 暂停进程，等待信号
}

int main()
{
    testAlarm01();
    //testAlarm02();
    return 0;
}